package com.ruoyi.oa.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工信息业务对象 oa_employee_info
 *
 * @author ruoyi
 * @date 2023-06-21
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class EmployeeInfoBo extends BaseEntity {

    /**
     * 主键
     */
    private String id;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 应聘岗位
     */
    @NotBlank(message = "应聘岗位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String position;

    /**
     * 离岗所需时间
     */
//    @NotBlank(message = "离岗所需时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String departureTime;

    /**
     * 获取岗位渠道（1：猎头；2：网站；3：内部推荐）
     */
    @NotBlank(message = "获取岗位渠道（1：猎头；2：网站；3：内部推荐）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String channel;

    /**
     * 推荐人姓名
     */
    private String referee;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 性别
     */
    @NotBlank(message = "性别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sex;

    /**
     * 出生年月
     */
    @NotNull(message = "出生年月不能为空", groups = { AddGroup.class, EditGroup.class })
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date birthDate;

    /**
     * 民族
     */
    @NotBlank(message = "民族不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nation;

    /**
     * 籍贯
     */
    @NotBlank(message = "籍贯不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nativePlace;

    /**
     * 家庭所在地
     */
    @NotBlank(message = "家庭所在地不能为空", groups = { AddGroup.class, EditGroup.class })
    private String homeLocation;

    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String idNumber;

    /**
     * 婚育状况
     */
    @NotBlank(message = "婚育状况不能为空", groups = { AddGroup.class, EditGroup.class })
    private String maritalStatus;

    /**
     * 政治面貌
     */
    @NotBlank(message = "政治面貌不能为空", groups = { AddGroup.class, EditGroup.class })
    private String politicalOutlook;

    /**
     * 技术职称
     */
    @NotBlank(message = "技术职称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String technicalTitle;

    /**
     * 手机号码
     */
    @NotBlank(message = "手机号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String phone;

    /**
     * 邮箱
     */
    @NotBlank(message = "邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
    private String email;

    /**
     * 身份证地址
     */
    @NotBlank(message = "身份证地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 通讯地址
     */
    @NotBlank(message = "通讯地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String mailAddress;

    /**
     * 身高
     */
    @NotBlank(message = "身高不能为空", groups = { AddGroup.class, EditGroup.class })
    private String height;

    /**
     * 体重
     */
    @NotBlank(message = "体重不能为空", groups = { AddGroup.class, EditGroup.class })
    private String weight;

    /**
     * 特长
     */
    @NotBlank(message = "特长不能为空", groups = { AddGroup.class, EditGroup.class })
    private String speciality;

    /**
     * 紧急联系人姓名
     */
    @NotBlank(message = "紧急联系人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emergencyName;

    /**
     * 紧急联系人关系
     */
    @NotBlank(message = "紧急联系人关系不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emergencyRelation;

    /**
     * 紧急联系人电话
     */
    @NotBlank(message = "紧急联系人电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String emergencyPhone;

    /**
     * 教育经历
     */
    @NotBlank(message = "教育经历不能为空", groups = { AddGroup.class, EditGroup.class })
    private String educationalExperience;

    /**
     * 学历附件
     */
    private String educationAttachmnet;


    /**
     * 工作经历
     */
    @NotBlank(message = "工作经历不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workExperience;

    /**
     * 是否犯罪
     */
    @NotBlank(message = "是否犯罪不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isCrime;

    /**
     * 犯罪记录
     */
    private String crimeExperience;

    /**
     * 是否违纪
     */
    @NotBlank(message = "是否违纪不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isViolation;

    /**
     * 违纪记录
     */
    private String violationExperience;

    /**
     * 是否入院
     */
    @NotBlank(message = "是否入院不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isHospital;

    /**
     * 住院记录
     */
    private String hospitalExperience;

    /**
     *
     */
    @NotBlank(message = "是否对其他公司负竞业限制义务不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isLimit;

    private String limitExperience;

    /**
     * 是否曾经入职
     */
    @NotBlank(message = "是否曾经入职不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isEntry;

    /**
     * 曾经入职记录
     */
    private String entryExperience;

    /**
     * 其他补充说明
     */
    private String otherExperience;



    /**
     * 提交时间范围
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm")
    private List<Date> submitTimeList;

    /**
    * 提交时间 终
    */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm")
    private Date submitStartDate;

    /**
     * 提交时间起
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm")
    private Date submitEndDate;
    /**
     * 流程状态
     */
    private String status;
}
